Modern animation and modeling systems enable artists to create high-quality content, but provide limited support for interactive applications. Although complex forms and motions can be constructed either by hand or with motion or geometry capture technologies, once they are created, they are difficult to render, particularly at runtime.
At this time, a variety of 3D scanning methodologies are available that can capture shapes that exist in the real world. Motion capture technologies are also capable of recording complex performances. Capture devices are restricted to recording shapes and motions that can be observed and that actually exist (e.g., such systems cannot capture the motion of a dinosaur). In contrast to the scanning devices, highly skilled artists have the advantage of being able to model complex existing shapes, as well as imaginary shapes and animations.
Since the 1980s 3D graphics hardware accelerators were focused on CAD requirements. CAD requirements implied rigid bodies, i.e., shapes that are most often modified by a single transformation matrix. As computers became more powerful, developers began to use computers to mimic moving characters such as robots. Making the leap from CAD to moving robots was conceptually simplistic; moving parts were separately modeled as rigid bodies that were connected to each other by seams at all moving joints. As the demand for more animated and lifelike characters increased, hardware accelerators evolved that added native support to computer systems for rendering non-rigid objects. This in turn, raised the quality bar for character rendering. However, the hardware support has lacked the ability to attain the level supported by software skinning techniques available in authoring tools used to create content for non-real-time media such as movies. Examples of such skinning techniques include terms such as “smart-skin,” “FFD's,” “wraps,” expressions, and so on.
Artists want to use these techniques to create characters that can be efficiently rendered on 3-D hardware accelerators. Yet while there are a large number of such techniques, most of them make assumptions about running on a general purpose CPU that does not translate into efficient operation on a streaming DSP or Graphics Processor Unit (GPU).